
package com.google.api.ads.adwords.jaxws.v201109_1.cm;

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlSeeAlso;
import javax.xml.bind.annotation.XmlType;


/**
 * 
 *             Statistics about an ad or criterion within an ad group or campaign.
 *           
 * 
 * <p>Java class for Stats complex type.
 * 
 * <p>The following schema fragment specifies the expected content contained within this class.
 * 
 * <pre>
 * &lt;complexType name="Stats">
 *   &lt;complexContent>
 *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *       &lt;sequence>
 *         &lt;element name="startDate" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
 *         &lt;element name="endDate" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
 *         &lt;element name="network" type="{https://adwords.google.com/api/adwords/cm/v201109_1}Stats.Network" minOccurs="0"/>
 *         &lt;element name="clicks" type="{http://www.w3.org/2001/XMLSchema}long" minOccurs="0"/>
 *         &lt;element name="impressions" type="{http://www.w3.org/2001/XMLSchema}long" minOccurs="0"/>
 *         &lt;element name="cost" type="{https://adwords.google.com/api/adwords/cm/v201109_1}Money" minOccurs="0"/>
 *         &lt;element name="averagePosition" type="{http://www.w3.org/2001/XMLSchema}double" minOccurs="0"/>
 *         &lt;element name="averageCpc" type="{https://adwords.google.com/api/adwords/cm/v201109_1}Money" minOccurs="0"/>
 *         &lt;element name="averageCpm" type="{https://adwords.google.com/api/adwords/cm/v201109_1}Money" minOccurs="0"/>
 *         &lt;element name="ctr" type="{http://www.w3.org/2001/XMLSchema}double" minOccurs="0"/>
 *         &lt;element name="conversions" type="{http://www.w3.org/2001/XMLSchema}long" minOccurs="0"/>
 *         &lt;element name="conversionRate" type="{http://www.w3.org/2001/XMLSchema}double" minOccurs="0"/>
 *         &lt;element name="costPerConversion" type="{https://adwords.google.com/api/adwords/cm/v201109_1}Money" minOccurs="0"/>
 *         &lt;element name="conversionsManyPerClick" type="{http://www.w3.org/2001/XMLSchema}long" minOccurs="0"/>
 *         &lt;element name="conversionRateManyPerClick" type="{http://www.w3.org/2001/XMLSchema}double" minOccurs="0"/>
 *         &lt;element name="costPerConversionManyPerClick" type="{https://adwords.google.com/api/adwords/cm/v201109_1}Money" minOccurs="0"/>
 *         &lt;element name="viewThroughConversions" type="{http://www.w3.org/2001/XMLSchema}long" minOccurs="0"/>
 *         &lt;element name="totalConvValue" type="{http://www.w3.org/2001/XMLSchema}long" minOccurs="0"/>
 *         &lt;element name="valuePerConv" type="{http://www.w3.org/2001/XMLSchema}double" minOccurs="0"/>
 *         &lt;element name="valuePerConvManyPerClick" type="{http://www.w3.org/2001/XMLSchema}double" minOccurs="0"/>
 *         &lt;element name="invalidClicks" type="{http://www.w3.org/2001/XMLSchema}long" minOccurs="0"/>
 *         &lt;element name="invalidClickRate" type="{http://www.w3.org/2001/XMLSchema}double" minOccurs="0"/>
 *         &lt;element name="numCalls" type="{http://www.w3.org/2001/XMLSchema}long" minOccurs="0"/>
 *         &lt;element name="numMissedCalls" type="{http://www.w3.org/2001/XMLSchema}long" minOccurs="0"/>
 *         &lt;element name="numReceivedCalls" type="{http://www.w3.org/2001/XMLSchema}long" minOccurs="0"/>
 *         &lt;element name="callDurationSecs" type="{http://www.w3.org/2001/XMLSchema}long" minOccurs="0"/>
 *         &lt;element name="avgCallDurationSecs" type="{http://www.w3.org/2001/XMLSchema}double" minOccurs="0"/>
 *         &lt;element name="numOfflineImpressions" type="{http://www.w3.org/2001/XMLSchema}long" minOccurs="0"/>
 *         &lt;element name="numOfflineInteractions" type="{http://www.w3.org/2001/XMLSchema}long" minOccurs="0"/>
 *         &lt;element name="offlineInteractionRate" type="{http://www.w3.org/2001/XMLSchema}double" minOccurs="0"/>
 *         &lt;element name="avgCostForOfflineInteraction" type="{https://adwords.google.com/api/adwords/cm/v201109_1}Money" minOccurs="0"/>
 *         &lt;element name="offlineInteractionCost" type="{https://adwords.google.com/api/adwords/cm/v201109_1}Money" minOccurs="0"/>
 *         &lt;element name="Stats.Type" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
 *       &lt;/sequence>
 *     &lt;/restriction>
 *   &lt;/complexContent>
 * &lt;/complexType>
 * </pre>
 * 
 * 
 */
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "Stats", propOrder = {
    "startDate",
    "endDate",
    "network",
    "clicks",
    "impressions",
    "cost",
    "averagePosition",
    "averageCpc",
    "averageCpm",
    "ctr",
    "conversions",
    "conversionRate",
    "costPerConversion",
    "conversionsManyPerClick",
    "conversionRateManyPerClick",
    "costPerConversionManyPerClick",
    "viewThroughConversions",
    "totalConvValue",
    "valuePerConv",
    "valuePerConvManyPerClick",
    "invalidClicks",
    "invalidClickRate",
    "numCalls",
    "numMissedCalls",
    "numReceivedCalls",
    "callDurationSecs",
    "avgCallDurationSecs",
    "numOfflineImpressions",
    "numOfflineInteractions",
    "offlineInteractionRate",
    "avgCostForOfflineInteraction",
    "offlineInteractionCost",
    "statsType"
})
@XmlSeeAlso({
    AdExtensionOverrideStats.class,
    CampaignAdExtensionStats.class,
    CampaignStats.class,
    AdStats.class
})
public class Stats {

    protected String startDate;
    protected String endDate;
    protected StatsNetwork network;
    protected Long clicks;
    protected Long impressions;
    protected Money cost;
    protected Double averagePosition;
    protected Money averageCpc;
    protected Money averageCpm;
    protected Double ctr;
    protected Long conversions;
    protected Double conversionRate;
    protected Money costPerConversion;
    protected Long conversionsManyPerClick;
    protected Double conversionRateManyPerClick;
    protected Money costPerConversionManyPerClick;
    protected Long viewThroughConversions;
    protected Long totalConvValue;
    protected Double valuePerConv;
    protected Double valuePerConvManyPerClick;
    protected Long invalidClicks;
    protected Double invalidClickRate;
    protected Long numCalls;
    protected Long numMissedCalls;
    protected Long numReceivedCalls;
    protected Long callDurationSecs;
    protected Double avgCallDurationSecs;
    protected Long numOfflineImpressions;
    protected Long numOfflineInteractions;
    protected Double offlineInteractionRate;
    protected Money avgCostForOfflineInteraction;
    protected Money offlineInteractionCost;
    @XmlElement(name = "Stats.Type")
    protected String statsType;

    /**
     * Gets the value of the startDate property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getStartDate() {
        return startDate;
    }

    /**
     * Sets the value of the startDate property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setStartDate(String value) {
        this.startDate = value;
    }

    /**
     * Gets the value of the endDate property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getEndDate() {
        return endDate;
    }

    /**
     * Sets the value of the endDate property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setEndDate(String value) {
        this.endDate = value;
    }

    /**
     * Gets the value of the network property.
     * 
     * @return
     *     possible object is
     *     {@link StatsNetwork }
     *     
     */
    public StatsNetwork getNetwork() {
        return network;
    }

    /**
     * Sets the value of the network property.
     * 
     * @param value
     *     allowed object is
     *     {@link StatsNetwork }
     *     
     */
    public void setNetwork(StatsNetwork value) {
        this.network = value;
    }

    /**
     * Gets the value of the clicks property.
     * 
     * @return
     *     possible object is
     *     {@link Long }
     *     
     */
    public Long getClicks() {
        return clicks;
    }

    /**
     * Sets the value of the clicks property.
     * 
     * @param value
     *     allowed object is
     *     {@link Long }
     *     
     */
    public void setClicks(Long value) {
        this.clicks = value;
    }

    /**
     * Gets the value of the impressions property.
     * 
     * @return
     *     possible object is
     *     {@link Long }
     *     
     */
    public Long getImpressions() {
        return impressions;
    }

    /**
     * Sets the value of the impressions property.
     * 
     * @param value
     *     allowed object is
     *     {@link Long }
     *     
     */
    public void setImpressions(Long value) {
        this.impressions = value;
    }

    /**
     * Gets the value of the cost property.
     * 
     * @return
     *     possible object is
     *     {@link Money }
     *     
     */
    public Money getCost() {
        return cost;
    }

    /**
     * Sets the value of the cost property.
     * 
     * @param value
     *     allowed object is
     *     {@link Money }
     *     
     */
    public void setCost(Money value) {
        this.cost = value;
    }

    /**
     * Gets the value of the averagePosition property.
     * 
     * @return
     *     possible object is
     *     {@link Double }
     *     
     */
    public Double getAveragePosition() {
        return averagePosition;
    }

    /**
     * Sets the value of the averagePosition property.
     * 
     * @param value
     *     allowed object is
     *     {@link Double }
     *     
     */
    public void setAveragePosition(Double value) {
        this.averagePosition = value;
    }

    /**
     * Gets the value of the averageCpc property.
     * 
     * @return
     *     possible object is
     *     {@link Money }
     *     
     */
    public Money getAverageCpc() {
        return averageCpc;
    }

    /**
     * Sets the value of the averageCpc property.
     * 
     * @param value
     *     allowed object is
     *     {@link Money }
     *     
     */
    public void setAverageCpc(Money value) {
        this.averageCpc = value;
    }

    /**
     * Gets the value of the averageCpm property.
     * 
     * @return
     *     possible object is
     *     {@link Money }
     *     
     */
    public Money getAverageCpm() {
        return averageCpm;
    }

    /**
     * Sets the value of the averageCpm property.
     * 
     * @param value
     *     allowed object is
     *     {@link Money }
     *     
     */
    public void setAverageCpm(Money value) {
        this.averageCpm = value;
    }

    /**
     * Gets the value of the ctr property.
     * 
     * @return
     *     possible object is
     *     {@link Double }
     *     
     */
    public Double getCtr() {
        return ctr;
    }

    /**
     * Sets the value of the ctr property.
     * 
     * @param value
     *     allowed object is
     *     {@link Double }
     *     
     */
    public void setCtr(Double value) {
        this.ctr = value;
    }

    /**
     * Gets the value of the conversions property.
     * 
     * @return
     *     possible object is
     *     {@link Long }
     *     
     */
    public Long getConversions() {
        return conversions;
    }

    /**
     * Sets the value of the conversions property.
     * 
     * @param value
     *     allowed object is
     *     {@link Long }
     *     
     */
    public void setConversions(Long value) {
        this.conversions = value;
    }

    /**
     * Gets the value of the conversionRate property.
     * 
     * @return
     *     possible object is
     *     {@link Double }
     *     
     */
    public Double getConversionRate() {
        return conversionRate;
    }

    /**
     * Sets the value of the conversionRate property.
     * 
     * @param value
     *     allowed object is
     *     {@link Double }
     *     
     */
    public void setConversionRate(Double value) {
        this.conversionRate = value;
    }

    /**
     * Gets the value of the costPerConversion property.
     * 
     * @return
     *     possible object is
     *     {@link Money }
     *     
     */
    public Money getCostPerConversion() {
        return costPerConversion;
    }

    /**
     * Sets the value of the costPerConversion property.
     * 
     * @param value
     *     allowed object is
     *     {@link Money }
     *     
     */
    public void setCostPerConversion(Money value) {
        this.costPerConversion = value;
    }

    /**
     * Gets the value of the conversionsManyPerClick property.
     * 
     * @return
     *     possible object is
     *     {@link Long }
     *     
     */
    public Long getConversionsManyPerClick() {
        return conversionsManyPerClick;
    }

    /**
     * Sets the value of the conversionsManyPerClick property.
     * 
     * @param value
     *     allowed object is
     *     {@link Long }
     *     
     */
    public void setConversionsManyPerClick(Long value) {
        this.conversionsManyPerClick = value;
    }

    /**
     * Gets the value of the conversionRateManyPerClick property.
     * 
     * @return
     *     possible object is
     *     {@link Double }
     *     
     */
    public Double getConversionRateManyPerClick() {
        return conversionRateManyPerClick;
    }

    /**
     * Sets the value of the conversionRateManyPerClick property.
     * 
     * @param value
     *     allowed object is
     *     {@link Double }
     *     
     */
    public void setConversionRateManyPerClick(Double value) {
        this.conversionRateManyPerClick = value;
    }

    /**
     * Gets the value of the costPerConversionManyPerClick property.
     * 
     * @return
     *     possible object is
     *     {@link Money }
     *     
     */
    public Money getCostPerConversionManyPerClick() {
        return costPerConversionManyPerClick;
    }

    /**
     * Sets the value of the costPerConversionManyPerClick property.
     * 
     * @param value
     *     allowed object is
     *     {@link Money }
     *     
     */
    public void setCostPerConversionManyPerClick(Money value) {
        this.costPerConversionManyPerClick = value;
    }

    /**
     * Gets the value of the viewThroughConversions property.
     * 
     * @return
     *     possible object is
     *     {@link Long }
     *     
     */
    public Long getViewThroughConversions() {
        return viewThroughConversions;
    }

    /**
     * Sets the value of the viewThroughConversions property.
     * 
     * @param value
     *     allowed object is
     *     {@link Long }
     *     
     */
    public void setViewThroughConversions(Long value) {
        this.viewThroughConversions = value;
    }

    /**
     * Gets the value of the totalConvValue property.
     * 
     * @return
     *     possible object is
     *     {@link Long }
     *     
     */
    public Long getTotalConvValue() {
        return totalConvValue;
    }

    /**
     * Sets the value of the totalConvValue property.
     * 
     * @param value
     *     allowed object is
     *     {@link Long }
     *     
     */
    public void setTotalConvValue(Long value) {
        this.totalConvValue = value;
    }

    /**
     * Gets the value of the valuePerConv property.
     * 
     * @return
     *     possible object is
     *     {@link Double }
     *     
     */
    public Double getValuePerConv() {
        return valuePerConv;
    }

    /**
     * Sets the value of the valuePerConv property.
     * 
     * @param value
     *     allowed object is
     *     {@link Double }
     *     
     */
    public void setValuePerConv(Double value) {
        this.valuePerConv = value;
    }

    /**
     * Gets the value of the valuePerConvManyPerClick property.
     * 
     * @return
     *     possible object is
     *     {@link Double }
     *     
     */
    public Double getValuePerConvManyPerClick() {
        return valuePerConvManyPerClick;
    }

    /**
     * Sets the value of the valuePerConvManyPerClick property.
     * 
     * @param value
     *     allowed object is
     *     {@link Double }
     *     
     */
    public void setValuePerConvManyPerClick(Double value) {
        this.valuePerConvManyPerClick = value;
    }

    /**
     * Gets the value of the invalidClicks property.
     * 
     * @return
     *     possible object is
     *     {@link Long }
     *     
     */
    public Long getInvalidClicks() {
        return invalidClicks;
    }

    /**
     * Sets the value of the invalidClicks property.
     * 
     * @param value
     *     allowed object is
     *     {@link Long }
     *     
     */
    public void setInvalidClicks(Long value) {
        this.invalidClicks = value;
    }

    /**
     * Gets the value of the invalidClickRate property.
     * 
     * @return
     *     possible object is
     *     {@link Double }
     *     
     */
    public Double getInvalidClickRate() {
        return invalidClickRate;
    }

    /**
     * Sets the value of the invalidClickRate property.
     * 
     * @param value
     *     allowed object is
     *     {@link Double }
     *     
     */
    public void setInvalidClickRate(Double value) {
        this.invalidClickRate = value;
    }

    /**
     * Gets the value of the numCalls property.
     * 
     * @return
     *     possible object is
     *     {@link Long }
     *     
     */
    public Long getNumCalls() {
        return numCalls;
    }

    /**
     * Sets the value of the numCalls property.
     * 
     * @param value
     *     allowed object is
     *     {@link Long }
     *     
     */
    public void setNumCalls(Long value) {
        this.numCalls = value;
    }

    /**
     * Gets the value of the numMissedCalls property.
     * 
     * @return
     *     possible object is
     *     {@link Long }
     *     
     */
    public Long getNumMissedCalls() {
        return numMissedCalls;
    }

    /**
     * Sets the value of the numMissedCalls property.
     * 
     * @param value
     *     allowed object is
     *     {@link Long }
     *     
     */
    public void setNumMissedCalls(Long value) {
        this.numMissedCalls = value;
    }

    /**
     * Gets the value of the numReceivedCalls property.
     * 
     * @return
     *     possible object is
     *     {@link Long }
     *     
     */
    public Long getNumReceivedCalls() {
        return numReceivedCalls;
    }

    /**
     * Sets the value of the numReceivedCalls property.
     * 
     * @param value
     *     allowed object is
     *     {@link Long }
     *     
     */
    public void setNumReceivedCalls(Long value) {
        this.numReceivedCalls = value;
    }

    /**
     * Gets the value of the callDurationSecs property.
     * 
     * @return
     *     possible object is
     *     {@link Long }
     *     
     */
    public Long getCallDurationSecs() {
        return callDurationSecs;
    }

    /**
     * Sets the value of the callDurationSecs property.
     * 
     * @param value
     *     allowed object is
     *     {@link Long }
     *     
     */
    public void setCallDurationSecs(Long value) {
        this.callDurationSecs = value;
    }

    /**
     * Gets the value of the avgCallDurationSecs property.
     * 
     * @return
     *     possible object is
     *     {@link Double }
     *     
     */
    public Double getAvgCallDurationSecs() {
        return avgCallDurationSecs;
    }

    /**
     * Sets the value of the avgCallDurationSecs property.
     * 
     * @param value
     *     allowed object is
     *     {@link Double }
     *     
     */
    public void setAvgCallDurationSecs(Double value) {
        this.avgCallDurationSecs = value;
    }

    /**
     * Gets the value of the numOfflineImpressions property.
     * 
     * @return
     *     possible object is
     *     {@link Long }
     *     
     */
    public Long getNumOfflineImpressions() {
        return numOfflineImpressions;
    }

    /**
     * Sets the value of the numOfflineImpressions property.
     * 
     * @param value
     *     allowed object is
     *     {@link Long }
     *     
     */
    public void setNumOfflineImpressions(Long value) {
        this.numOfflineImpressions = value;
    }

    /**
     * Gets the value of the numOfflineInteractions property.
     * 
     * @return
     *     possible object is
     *     {@link Long }
     *     
     */
    public Long getNumOfflineInteractions() {
        return numOfflineInteractions;
    }

    /**
     * Sets the value of the numOfflineInteractions property.
     * 
     * @param value
     *     allowed object is
     *     {@link Long }
     *     
     */
    public void setNumOfflineInteractions(Long value) {
        this.numOfflineInteractions = value;
    }

    /**
     * Gets the value of the offlineInteractionRate property.
     * 
     * @return
     *     possible object is
     *     {@link Double }
     *     
     */
    public Double getOfflineInteractionRate() {
        return offlineInteractionRate;
    }

    /**
     * Sets the value of the offlineInteractionRate property.
     * 
     * @param value
     *     allowed object is
     *     {@link Double }
     *     
     */
    public void setOfflineInteractionRate(Double value) {
        this.offlineInteractionRate = value;
    }

    /**
     * Gets the value of the avgCostForOfflineInteraction property.
     * 
     * @return
     *     possible object is
     *     {@link Money }
     *     
     */
    public Money getAvgCostForOfflineInteraction() {
        return avgCostForOfflineInteraction;
    }

    /**
     * Sets the value of the avgCostForOfflineInteraction property.
     * 
     * @param value
     *     allowed object is
     *     {@link Money }
     *     
     */
    public void setAvgCostForOfflineInteraction(Money value) {
        this.avgCostForOfflineInteraction = value;
    }

    /**
     * Gets the value of the offlineInteractionCost property.
     * 
     * @return
     *     possible object is
     *     {@link Money }
     *     
     */
    public Money getOfflineInteractionCost() {
        return offlineInteractionCost;
    }

    /**
     * Sets the value of the offlineInteractionCost property.
     * 
     * @param value
     *     allowed object is
     *     {@link Money }
     *     
     */
    public void setOfflineInteractionCost(Money value) {
        this.offlineInteractionCost = value;
    }

    /**
     * Gets the value of the statsType property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getStatsType() {
        return statsType;
    }

    /**
     * Sets the value of the statsType property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setStatsType(String value) {
        this.statsType = value;
    }

}
